home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / sys / timex.h < prev    next >
C/C++ Source or Header  |  2006-05-08  |  5KB  |  128 lines

  1. /* Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
  2.    This file is part of the GNU C Library.
  3.  
  4.    The GNU C Library is free software; you can redistribute it and/or
  5.    modify it under the terms of the GNU Lesser General Public
  6.    License as published by the Free Software Foundation; either
  7.    version 2.1 of the License, or (at your option) any later version.
  8.  
  9.    The GNU C Library is distributed in the hope that it will be useful,
  10.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.    Lesser General Public License for more details.
  13.  
  14.    You should have received a copy of the GNU Lesser General Public
  15.    License along with the GNU C Library; if not, write to the Free
  16.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  17.    02111-1307 USA.  */
  18.  
  19. #ifndef    _SYS_TIMEX_H
  20. #define    _SYS_TIMEX_H    1
  21.  
  22. #include <features.h>
  23. #include <sys/time.h>
  24.  
  25. /* These definitions from linux/timex.h as of 2.2.0.  */
  26.  
  27. struct ntptimeval
  28. {
  29.   struct timeval time;    /* current time (ro) */
  30.   long int maxerror;    /* maximum error (us) (ro) */
  31.   long int esterror;    /* estimated error (us) (ro) */
  32. };
  33.  
  34. struct timex
  35. {
  36.   unsigned int modes;    /* mode selector */
  37.   long int offset;    /* time offset (usec) */
  38.   long int freq;    /* frequency offset (scaled ppm) */
  39.   long int maxerror;    /* maximum error (usec) */
  40.   long int esterror;    /* estimated error (usec) */
  41.   int status;        /* clock command/status */
  42.   long int constant;    /* pll time constant */
  43.   long int precision;    /* clock precision (usec) (read only) */
  44.   long int tolerance;    /* clock frequency tolerance (ppm) (read only) */
  45.   struct timeval time;    /* (read only) */
  46.   long int tick;    /* (modified) usecs between clock ticks */
  47.  
  48.   long int ppsfreq;    /* pps frequency (scaled ppm) (ro) */
  49.   long int jitter;    /* pps jitter (us) (ro) */
  50.   int shift;        /* interval duration (s) (shift) (ro) */
  51.   long int stabil;    /* pps stability (scaled ppm) (ro) */
  52.   long int jitcnt;    /* jitter limit exceeded (ro) */
  53.   long int calcnt;    /* calibration intervals (ro) */
  54.   long int errcnt;    /* calibration errors (ro) */
  55.   long int stbcnt;    /* stability limit exceeded (ro) */
  56.  
  57.   /* ??? */
  58.   int  :32; int  :32; int  :32; int  :32;
  59.   int  :32; int  :32; int  :32; int  :32;
  60.   int  :32; int  :32; int  :32; int  :32;
  61. };
  62.  
  63. /* Mode codes (timex.mode) */
  64. #define ADJ_OFFSET        0x0001    /* time offset */
  65. #define ADJ_FREQUENCY        0x0002    /* frequency offset */
  66. #define ADJ_MAXERROR        0x0004    /* maximum time error */
  67. #define ADJ_ESTERROR        0x0008    /* estimated time error */
  68. #define ADJ_STATUS        0x0010    /* clock status */
  69. #define ADJ_TIMECONST        0x0020    /* pll time constant */
  70. #define ADJ_TICK        0x4000    /* tick value */
  71. #define ADJ_OFFSET_SINGLESHOT    0x8001    /* old-fashioned adjtime */
  72.  
  73. /* xntp 3.4 compatibility names */
  74. #define MOD_OFFSET    ADJ_OFFSET
  75. #define MOD_FREQUENCY    ADJ_FREQUENCY
  76. #define MOD_MAXERROR    ADJ_MAXERROR
  77. #define MOD_ESTERROR    ADJ_ESTERROR
  78. #define MOD_STATUS    ADJ_STATUS
  79. #define MOD_TIMECONST    ADJ_TIMECONST
  80. #define MOD_CLKB    ADJ_TICK
  81. #define MOD_CLKA    ADJ_OFFSET_SINGLESHOT /* 0x8000 in original */
  82.  
  83.  
  84. /* Status codes (timex.status) */
  85. #define STA_PLL        0x0001    /* enable PLL updates (rw) */
  86. #define STA_PPSFREQ    0x0002    /* enable PPS freq discipline (rw) */
  87. #define STA_PPSTIME    0x0004    /* enable PPS time discipline (rw) */
  88. #define STA_FLL        0x0008    /* select frequency-lock mode (rw) */
  89.  
  90. #define STA_INS        0x0010    /* insert leap (rw) */
  91. #define STA_DEL        0x0020    /* delete leap (rw) */
  92. #define STA_UNSYNC    0x0040    /* clock unsynchronized (rw) */
  93. #define STA_FREQHOLD    0x0080    /* hold frequency (rw) */
  94.  
  95. #define STA_PPSSIGNAL    0x0100    /* PPS signal present (ro) */
  96. #define STA_PPSJITTER    0x0200    /* PPS signal jitter exceeded (ro) */
  97. #define STA_PPSWANDER    0x0400    /* PPS signal wander exceeded (ro) */
  98. #define STA_PPSERROR    0x0800    /* PPS signal calibration error (ro) */
  99.  
  100. #define STA_CLOCKERR    0x1000    /* clock hardware fault (ro) */
  101.  
  102. #define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
  103.     STA_PPSERROR | STA_CLOCKERR) /* read-only bits */
  104.  
  105. /* Clock states (time_state) */
  106. #define TIME_OK        0    /* clock synchronized, no leap second */
  107. #define TIME_INS    1    /* insert leap second */
  108. #define TIME_DEL    2    /* delete leap second */
  109. #define TIME_OOP    3    /* leap second in progress */
  110. #define TIME_WAIT    4    /* leap second has occurred */
  111. #define TIME_ERROR    5    /* clock not synchronized */
  112. #define TIME_BAD    TIME_ERROR /* bw compat */
  113.  
  114. /* Maximum time constant of the PLL.  */
  115. #define MAXTC        6
  116.  
  117. __BEGIN_DECLS
  118.  
  119. extern int __adjtimex (struct timex *__ntx) __THROW;
  120. extern int adjtimex (struct timex *__ntx) __THROW;
  121.  
  122. extern int ntp_gettime (struct ntptimeval *__ntv) __THROW;
  123. extern int ntp_adjtime (struct timex *__tntx) __THROW;
  124.  
  125. __END_DECLS
  126.  
  127. #endif /* sys/timex.h */
  128.